#include <logger.hpp>
#include <wifi_text_log.hpp>

// 文字类日志每行最大长度
#define LOG_LINE_SIZE (2000)

static char line[LOG_LINE_SIZE];

// 记录文字类日志
void logger_text(uint8_t echo, const char* fmt, ...)
{
	if (fmt == NULL)
	{
		return;
	}

	int len = strlen(fmt);
	if (len <= 0)
	{
		return;
	}

	va_list ap;
	va_start(ap, fmt);						 // 获得可变参数列表
	vsnprintf(line, LOG_LINE_SIZE, fmt, ap); // 打印到line中
	va_end(ap);								 // 释放资源

	if (echo & 1)
	{
		printf("%s", line);
	}
	if ((echo >> 1) & 1)
	{
		WifiTextLog* pWifTextLog = WifiTextLog::Instance();
		pWifTextLog->SendTextLine(std::string(line));
	}
}
